Skip to main content

User Guide

Screen Layout

TimeBase records time-series data in streams. See Basic Concepts for details.

TimeBase Web Admin application screen is divided into two main sections: a streams panel and the main screen.

Streams Panel

The streams panel is located on the left-hand side of the screen.

Toolbar

Use the toolbar to quickly access the following options:

Create new stream or create new view
Query mode
Import from QSMSG
Import from CSV/text file
Flow
Order book
Generate QQL/DDL
Knowledge Base

Search Filter

The Search filter is located at the top of the streams panel and allows you to quickly locate the streams and symbols available in your TimeBase instance.

To filter further, click Search Options where you can make the following selections:

  • Use wildcards or Use regular expressions
  • Match anywhere or Match exactly
  • Reset to default

The search options work in the following way:

  • Use wildcards: Search by entering a java-style wildcard.
  • Use regular expressions: Search by entering a java-supported regular expression.
  • Match anywhere: Searches for any occurrences of the input value.
  • Match exactly: Searches by the exact input value.
  • Reset to default: Resets the search options to the Match anywhere option.

Streams

The Streams tab displays all the streams in your TimeBase instance in lexicographic order.

Views

The Views tab displays all the QQL queries saved as Views.

info

For more information on Views, see the Materialized Views section.

For more information on performing actions with Views, see the Working with Views section.

Screen Controls

Hide Streams Panel

To hide the streams panel:

  • Click the Hide menu icon.

To expand the streams panel:

  • Click the Show menu icon.
Tab Synchronization

When enabled, the tab synchronization feature automatically matches your tab selections with the corresponding stream, symbol, or view in the streams panel.

To turn on tab synchronization:

  • Select Enable tab synchronization.

To turn off tab synchronization:

  • Select Disable tab synchronization.
Expand/Collapse Streams/Views

To expand or collapse an individual stream or view:

  • Select the caret next to the stream/view name.

To collapse all expanded streams or views:

  • Click Collapse All.
Context Menu

To open a context menu:

  • Right-click a stream, symbol, or view name.
    or
  • Hover over any stream, symbol, or view name and click the Open context menu icon.

The actions available in the context menu vary depending on whether you select a stream, symbol, or view.

info

For more information on actions available in the stream and symbol context menus, see the Stream Actions and Symbol Actions sections.

New Tabs

To open a new tab:

  • Click on any stream, symbol, or view name directly.
    or
  • Hover over any stream, symbol, or view name and click the Open in new tab icon.

All open tabs are displayed at the top of the main screen.

For information on managing tabs, see the Tabs section.

Main Screen

The main screen contains all the stream data, charts, and other information.

The main screen contains the content area - a dynamic grid that displays interactive data and can load new data.

Tabs

All open tabs are displayed at the top of the main screen.

To manage tabs:

  • Click the Tabs list icon.

Use the Tabs List to:

  • View all open tabs
  • Navigate between tabs
  • Close all open tabs at once

For information on how to open new tabs, see the New Tabs section.

Settings

Use the Global Settings to set:

  • Date Format
  • Time Format
  • Time Zone (local time zone is detected and populated automatically)

Time Box

Some streams and views contain a time box above the dynamic data grid.

To change the Start From date:

  1. Use the Time Box input field and/or calendar icon to enter the date and time.
  2. Click Apply to apply the changes.

To cancel changes to the Start From date:

  • Click Reset.

Export

QSMSG is Deltix's binary proprietary data format. You can export an entire stream's, symbol's, or view's data, including all stream messages, to a QSMSG formatted file. You can use this file to easily import stream data to another TimeBase instance.

To export stream, symbol, or view data to QSMSG format:

  1. Select the stream, symbol, or view whose data you want to export.
  2. Click Export.
  3. Set the export parameters.
  4. Click Export.

For information on exporting stream data to a CSV/text file, see the Export to CSV/Text File section.

For information on exporting symbol data to a CSV/text file, see the Export to CSV section.

Filter

To filter stream data:

  1. Select Filter.
  2. You can filter by symbol and/or message type.
  3. Click Clear to clear your selections or Close to confirm your changes.

Column Selection

To edit which columns appear in the table:

  1. Click the hamburger menu icon.
  2. Select or un-select column categories and individual columns from the list.

Column Widths

To edit column widths:

  • Hover over the right edge of the column you want to resize and drag your mouse left or right.

or

  1. Click on a column's individual hamburger menu.
  2. Choose from one of the sizing options:
    • Autosize This Column
    • Autosize All Columns
    • Reset Columns
    • Reset this

Pinning Columns

Pinning a column to the left or right side of the screen allows you to scroll horizontally while always viewing the pinned column's data.

To pin a column:

  1. Click on a column's individual hamburger menu.
  2. Go to Pin Column > Pin left or Pin right.

To unpin a column:

  1. Click on the column's individual hamburger menu.
  2. Go to Pin Column > No pin.

Message Actions

To access message actions:

  • Right-click any message in the content area.

The following message actions are available:

  • Copy: Copy field text.
  • Copy with headers: Copy field text along with the column header.
  • Copy JSON: Copy a specific field in JSON format.
  • Send Message: The Send Message pop-up window opens.
  • Edit Message: The Edit Message pop-up window opens.
  • View Order Book: Opens the order book in the message details panel for Level 2 messages.
Edit Message

The edit message pop-up window allows you to edit a message's properties. The properties available for editing vary by message.

To edit a message:

  • Right-click any message in the content area > Edit.
View Order Book

You can view the order book of individual Level 2 messages.

To view the order book:

  • Right-click any message in the content area > View Order Book.

Shortcuts

In the top right corner of the main screen, the following shortcuts are available:

Sign Out

To sign out of Web Admin:

  • Click the Sign out icon.

Properties

To view a given stream, symbol, or view's properties:

  1. In the streams panel, click on the name of the stream, symbol, or view.
  2. Click the Properties icon.

Message Details

To view a given message's details:

  1. In the streams panel, click on the name of a stream, symbol, or view.
  2. In the content area, double click a message.
    The message details panel opens.

You can switch between the following view modes:

  • VIEW: Displays general information about the selected message.
  • JSON: Displays the classes and fields of the selected message in a JSON format.
  • ORDER BOOK: Displays the order book for the selected instrument and exchange at a particular time.

Description

To view a given stream, symbol, or view's description:

  1. In the streams panel, click on the name of the stream, symbol, or view.
  2. Click the Description icon.
    The description panel opens.

Create a Stream

You can create a new stream in the TimeBase Web Admin application.

To create a new stream schema:

  1. In the toolbar, click Create > Create stream.
  2. Enter a stream key and storage version.
    Choose between storage version 5.0 (default) or version 4.0 that allows you to set a distribution factor.
  3. Click Start Creating.
    A stream schema editor opens.

TimeBase is designed to work with records of different types. We call them messages. In object-oriented programing languages, messages can be seen as classes, each with a specific set of fields. In TimeBase, messages are arranged chronologically in streams.

Each stream has a unique stream schema, which declares what types of messages (including their hierarchy) a specific stream may store. This differs from traditional relational databases with a flat structure. The uniqueness of the stream schema means that identical classes defined by different stream schemas are in fact independent classes and are not treated as identical. The stream schema may as well include applicable enumerations.


Practical Example

For demonstration purposes lets take a MyBarMessage class from deltix.samples.timebase.basics sample package. In this example we will create a new stream with a sample class, create loader to write some demo data into the stream and view recorded data in Web Admin application.

  1. Click Create new stream in the toolbar.
  2. Enter Demo Stream Key in the dialog window and click Start Creating to open a stream schema editor.
  3. Click New Class in the schema editor and create MyBarMessage class.
  4. Add new fields:
  • closePrice, NON STATIC FLOAT IEEE64
  • openPrice, NON STATIC FLOAT IEEE64
  • highPrice, NON STATIC FLOAT IEEE64
  • lowPrice, NON STATIC FLOAT IEEE64
  • volume, NON STATIC FLOAT IEEE64
  • exchange, NON STATIC CHAR
  1. Create a Loader to write data into a sample stream. Make sure to use your new stream name.
  2. Click View to see recorded messages.
info

To learn how to add messages manually, refer to the Send Message section.

Refer to the client APIs samples section for more information.

Import/Export JOSN File

You can find EXPORT TO JSON and IMPORT FROM JSON buttons in the stream schema editor screen when you start creating a new stream schema or edit an existing stream schema.

  • EXPORT TO JSON: you can export a schema of any existing stream to a JSON file.
  • IMPORT FROM JSON: you can use a JSON file with a pre-configured schema to create new stream/edit existing stream schema. In case it is applied to the existing stream, new schema from a JSON file will override the existing stream schema. The original stream schema will be restored if there are any errors in the JSON file.
tip

Make sure the JSON file you import is valid; otherwise, it will be rejected with an error. To pass the validation, a JSON file must include a state key with arrays of classes and enums. Each array must include objects with name, title, and fields array. In the fields array there must be objects with name, title, and type. In case a JSON file is missing any of those, it will be rejected with a corresponding error message.

A JSON file must be also valid from the business logic perspective, for example, it must have a valid hierarchy of classes. Always make sure your file is up to date with the most recent system updates.

You will get a JSON parse error when importing a not valid JSON or another file format.

Stream Actions

To view all available stream actions, open the context menu by right-clicking any stream name or clicking the menu icon next to the stream name.

View

To look at stream data:

  1. In the streams panel, right-click a stream.
    The Context Menu opens.
  2. Select View.

To open message details:

  • Double click any record in the content area.
info

For more information on the actions available in the view, refer to the Message Actions section.

Reverse View

To display a stream's data with the latest timestamp at the top of the screen:

  1. In the streams panel, right-click a stream.
    The Context Menu opens.
  2. Select Reverse View.

Monitor

To view the latest records for each symbol in a given stream in real time:

  1. In the streams panel, right-click a stream.
    The Context Menu opens.
  2. Select Monitor.

Inspector

The Inspector option allows you to view real-time updates for a given stream's latest 100 records.

To use Inspector:

  1. In the streams panel, right-click a stream.
    The Context Menu opens.
  2. Select Inspector.
    The latest messages are displayed at top of the list.

Chart

To see charts for a given trading instrument:

  1. In the streams panel, right-click a stream.
    The Context Menu opens.
  2. Click Chart and select a trading instrument.

Schema

To display stream schema details:

  1. In the streams panel, right-click a stream.
    The Context Menu opens.
  2. Click Schema.

You can also edit, import, and export stream schema. To learn more, refer to the Create Stream section.

Query

To run data queries:

  1. In the streams panel, right-click a stream.
    The Context Menu opens.
  2. Click Query.
    A pre-populated query appears. You can use it to get all the messages from the corresponding stream.
Example
SELECT * FROM "KRAKEN"
info

For more information about working with queries, refer to the Queries section.

For more information about the TimeBase Query Language, refer to the QQL Tutorials page.

Truncate

Truncating a stream will remove all data after a specified time.

To truncate a stream:

  1. In the streams panel, right-click a stream.
    The Context Menu opens.
  2. Select Truncate.
  3. In the pop-up window:
    1. Select any symbols you want to truncate.
    2. Set a date and time range for keeping data by either:
      • Using the slider.
      • Specifying a range in the Date field.
    3. Choose a timezone.
    4. Select Truncate.
  4. Select Ok.

Purge

Purging a stream removes all data that is older than a specified start date.

To purge stream data:

  1. In the streams panel, right-click a stream.
    The Context Menu opens.
  2. Select Purge.
  3. In the pop-up window, choose a time range for the purge by either:
    • Using the slider.
    • Specifying a range in the Date field.
  4. Select a Timezone and click Purge.
  5. Select Ok.
tip

The purge process can be aborted but it will not return to its initial state. All data that was removed prior to aborting the process will be lost.

Delete Stream

To remove a specific stream from the system:

  1. In the streams panel, right-click a stream.
    The Context Menu opens.
  2. Select Delete.
  3. Click Delete in the dialog window to confirm or Cancel to abort.

Change Name

To rename a specific stream:

  1. In the streams panel, right-click a stream.
    The Context Menu opens.
  2. Select Change name.
  3. Enter a new name in the Name field and click Rename.

Describe

To display a QQL code with stream schema description:

  1. In the streams panel, right-click a stream.
    The Context Menu opens.
  2. Select Describe.
    The stream description pop-up appears.

You can use this as a template to create new streams or modify existing streams.

To learn more, refer to the General Controls section.

Send Message

You can use the Send Message option to manually add new messages to a given stream. The stream schema determines what message classes can be recorded to a specific stream. Each message class has an individual set of fields. For more information, see Basic Concepts.

To send a message:

  1. In the streams panel, right-click a stream.
    The Context Menu opens.
  2. Select Send message.
    A pop-up form opens.
  3. Choose either the UI or in JSON format for entering paramter values.
  4. Choose a writing mode:
    • Append
    • Insert
    • Truncate
  5. Enter stream parameters.
  6. Click Send to submit the message or Revert to clear all entries.
tip

The available parameters are determined by the message class and may vary significantly for messages of different classes.

Export to QSMSG

QSMSG is Deltix's binary proprietary data format.

You can export an entire stream's data, including all stream messages, to a QSMSG formatted file. You can use this file to easily import stream data to another TimeBase instance.

To export to QSMSG:

  1. In the streams panel, right-click a stream.
    The Context Menu opens.
  2. Click Export to QSMSG.
  3. Set export parameters:
    • Date range
    • Date/Time format
    • Export static fields
    • Symbols
    • Type
    • Config (file type)
  4. Click Export.

Export to CSV/Text File

You can export an entire stream's data, including all stream messages, to a CSV or text file.

To export to a CSV or text file:

  1. In the streams panel, right-click the stream you want to import to.
    The Context Menu opens.
  2. Click Export to text file.
  3. Specify export parameters:
    • Set the data time range.
    • Select ALL symbols or specify symbols to be exported.
    • Browse through stream schema classes and fields and select which ones you wish to export.
    • Select the output CSV file configurations.
  4. Click Export.

Import from QSMSG

QSMSG is Deltix's binary proprietary data format.

To import from QSMSG:

  1. Open the Import from QSMSG pop-up window.
  2. Fill out the following fields:
    • File: (Required.) Click Choose File and select the file you want to import.
    • Stream: (Required.) Enter a stream name if not already chosen.
    • Write Mode: Select a write mode from the following options.
      • Append: Adds data into a stream that is not older than the last time (per symbol).
      • Insert: Inserts data into a stream.
      • Rewrite: Adds data into a stream and removes previous data by truncating using first message time (per symbol).
    • Description
    • Symbols
    • Periodicity:
      • Regular
      • Irregular
      • Static
    • Storage version: (Only available for new streams.) Choose between storage version 5.0 (default) or version 4.0 that allows you to set a distribution factor.
    • Time zone
    • Range to import
      • Start time & end time
  3. To edit the import schema, click Edit Schema.
    or
    To finish, click Import.

Import from CSV/Text File

To import from a CSV/text file:

  1. Set up the import using the following options:
    • In the streams panel, right-click a stream to import to and select Import from text file.
      1. Click Add Files or Add Folders and select the file or folder you want to import.
      2. Click Next.
    • In the toolbar, click Import from text file.
      The Import from Text File pop-up opens.
      1. Enter a stream name.
      2. Choose between storage version 5.0 (default) or version 4.0 that allows you to set a distribution factor.
      3. Click Add Files or Add Folders and select the file or folder you want to import.
      4. Click Next.
  2. Customize parameters according to your needs and click Next.
  3. Review your import and click Next.
  4. Select a write mode and an import range (optional).
  5. (Optional.) To download an import log file, click Full Log.
  6. To edit the import schema, click Edit Schema.
    or
    To finish, click Close.

Playback

The playback functionality copies data from a source stream to a target stream/topic, but changes message timestamps to the current time. This allows users to observe live data by replaying historical streams in real-time.

By default, you can run up to eight playback processes per Web Admin instance. You can change this amount in the configuration.

To set up a stream playback:

  1. In the streams panel, right-click the stream you want to copy data from.
    The Context Menu opens.
  2. Click Playback.
  3. Select one or more source streams. You may optionally set a time range.
  4. Select a target stream or topic.
  5. (Optional.) Select one or more of the following options:
    • Speed: Changes the speed of the playback.
    • Loop: Repeats the playback at the end of the stream.
    • Permanent: When turned on, keeps playback running permanently, independent of user session timeout. When turned off, playback stops when user session times out.

      Note: The default playback timeout is 60 seconds.

  6. Click Next.

The Playback pop-up window appears.

Additional Controls

Minimize

To minimize the Playback pop-up window:

  • Click the pin icon.

You can now control the playback options from the bottom left-hand corner of the screen.

Bring to Front

To return to the Playback pop-up window:

  • In the bottom left-hand corner of the screen, click the pop-out icon.

Change Speed

To change the speed of the playback:

  • In the drop-down, select one of the playback speed options.

Permanent

When turned on, Permanent keeps the playback running permanently, independent of user session timeout. When turned off, the playback stops when the user session times out. The default playback timeout is 60 seconds.

To keep the playback running permanently:

  • Toggle Permanent on.

Symbol Actions

To view the available symbol actions:

  1. Click the caret next to the stream name.
  2. Right-click the symbol name.
    The context menu opens.

View

To view a symbol's data:

  1. In the streams panel, expand a stream by clicking the caret next to its name.
  2. Right-click the symbol name.
    The context menu opens.
  3. Click View

To view message details:

  • Double click any record in the content area.
info

For more information on the available actions in the View, refer to the Message Actions section.

Reverse View

To display a symbol's data with the latest timestamp at the top of the screen:

  1. In the streams panel, expand a stream by clicking the caret next to its name.
  2. Right-click the symbol name.
    The context menu opens.
  3. Select Reverse View.

Monitor

The Monitor option allows viewing real-time updates for a specific symbol.

To use the Monitor option:

  1. In the streams panel, expand a stream by clicking the caret next to its name.
  2. Right-click the symbol name.
    The context menu opens.
  3. Select Monitor.

To view message details:

  • Double click any record in the content area.

Inspector

The Inspector option allows you to view real-time updates for a given symbol's latest 100 records.

To use Inspector:

  1. In the streams panel, expand a stream by clicking the caret next to its name.
  2. Right-click the symbol name.
    The context menu opens.
  3. Select Inspector.

The latest messages are displayed at the top of the list.

To view message details:

  • Double click any record in the content area.

Chart

Charts show the incoming market data and help verify that the market data aggregator is consuming and storing data properly. TimeBase Web Administrator charts are not designed to be used as a financial research tool.

info

Charts can display data for a single contract per panel.

The No chart data message notifies the user that charting is not supported for a particular selection.

The user receives a warning when the data within the selected stream is not capable of being charted and the chart function is selected.

To use the Charts tool:

  • Expand a stream > right-click a symbol > select Chart.
  1. Chart type: Select a chart type. For more information, see the Chart Types section.
  2. Levels: Filter for L1 or L2 data.
  3. Time range: Select a preset time interval or set a custom time range by clicking Custom Time Range.
    • To move along the timeline once you've selected a range, click and drag the chart or use the left and right arrow keys on your keyboard.
    • To zoom in and out in time, use your mouse to scroll in and out.
  4. Symbol: Select up to five symbols to compare chart data.
  5. Number of levels: Choose how many levels to display on each side of the market.
    • If you are working with a bar chart, you will see an option to choose bar size instead.
  6. Track: View the chart in real time.
  7. Share Chart: Copies a URL to your clipboard.
  8. Exchanges: (Not shown.) If your stream includes market data from more than one exchange, a drop down list allows selecting all or any specific exchange to display on the chart.

To open View mode:

  • Right-click the chart and select View data.

Chart Types

Price Chart

To view Level2 market data for a given instrument:

  • In the chart type dropdown, select Prices_L2.

To choose how many levels to display on each side of the market:

  • In the Levels drop-down, choose the number of levels.
Trades BBO

To view Level1 data and trades:

  • In the chart type dropdown, select Trades_BBO.
Bar Chart

You can use several types of Bar Charts depending on the price type:

  • Mid-Price
  • Ask
  • Bid

To modify the size of the bars:

  • In the Bar Size drop-down, select a bar size.
Linear Chart

You can display time-series data for numeric fields in messages in a Line chart.

To display the Linear chart settings:

  • Click the gear icon in the right-hand pane.

In the chart settings, you can enable and disable any attribute displayed on the chart.

Order Book

To display a pre-configured order book:

  • Right-click any symbol in a stream and click Order Book.

To display an aggregated order book, add more streams and exchanges.

Query

To open a window where you can run QQL queries:

  • Right-click any symbol in a stream and click Query .

In the query area of the screen, you will have a pre-populated query to get all the messages with the selected symbol from the corresponding stream.

Example
SELECT * FROM "KRAKEN" WHERE symbol == 'BTC/USD'
info

For more information about working with queries in this application, refer to the Queries section.

For more information about the TimeBase Query Language, refer to the QQL Tutorials section.

Change Name

To rename a symbol:

  1. Right-click the symbol name.
    The context menu opens.
  2. Select Change name.
  3. In the text field, enter a new name and click Rename.

Export to QMSG

You can export data for a given symbol to a file that uses Deltix's proprietary QSMG format.

Export to CSV

You can export data for a given symbol to a CSV file.

In the Export to CSV from, you can specify what exactly you would like to export, including:

  • Set the data time range.
  • Select ALL symbols or specify symbols to be exported.
  • Browse through stream schema classes and fields and select which ones you wish to export.
  • Select the output CSV file configurations.

Materialized Views

Overview

A materialized view is an object that contains the result of a QQL query. In TimeBase, we call it a View. The basic principle is that you can extract data via a QQL query from one stream and save it in a dedicated stream, which will get updated along with the data in the source stream.

You can use Views to have custom data selections or data transformations from TimeBase streams. By creating a View, you basically pre-process your query once and use it afterwards as a ready dataset, which may significantly reduce processing time, unlike running the same query over and over again every time you need it.

As a result, you can keep your data extract in a dedicated stream and work with it the same way you work with any other TimeBase stream in the Web Admin application or via API.

Design Principles

Lifecycle

Views acquire different states throughout their lifecycle.

StateDescription
CREATEDA newly-created stream acquires this state.
PROCESSINGThis state indicates that the query is currently under processing by the server. On the UI, it is indicated by the loading icon next to the name of the View.
IDLEA View acquires this state when not in PROCESSING and is waiting for updates in the source stream.
FAILEDA View acquires this state when there's an error in the source stream or any other error occurs while processing the QQL query.
COMPLETEDA View that does not draw data from a stream acquires this state once the QQL query is finalized.
REMOVEDDeleted Views acquire this state.

Data Handling

Views operate in a so-called live mode when they query data from TimeBase streams. In this case, new data (QQL query output) is added to the target stream of the View with every new message that comes to the source stream. Naming for target streams uses the following pattern: "VIEW_NAME#view#".

info

A View gets restarted and the target stream is rewritten completely every time a source stream is truncated or its schema changes.

When a View does not draw data from any stream, we say that it is not operating in live mode. Its QQL query is processed once, the results are written into the target stream, and the View acquires a COMPLETED state.

There is a system stream, views#, that is not available on the UI but accessible via the TimeBase API, where all metadata, states, errors, QQL query and other information about each View is recorded.

Processing Views

You can configure the server to assign dedicated threads to process Views. Workers that process Views are evenly distributed among all the assigned threads.

There are two ways to configure dedicated threads to process Views:

  • Add the JAVA system property: -Dviews.processor.thread-pool-size=8

  • Configure the application.yaml:

    views:
    processor:
    thread-pool-size: 8 # default is 4
info

The default value = 4.

Workers that process Views take up processing resources on your machine as they open cursors and loaders, create streams, and record data. This gets even more important when it comes to Views operating in live mode.

tip

Keep in mind that the number of active views directly affects the performance of the entire application.

Working with Views

Views are located in the streams panel, in a dedicated Views tab.

To perform an action on a given View:

  • Right-click the View name.
    The context menu opens.

To learn more about the available actions, refer to the stream actions and symbol actions sections.

Create

There are two ways to create Views:

Create View

To create a view:

  1. Click Create > Create view.
  2. Give the view a name.
  3. Enter your QQL query.
  4. Choose whether you want to create a live view.
  5. Click Create View.

Delete

To delete a view:

  1. Right-click the View name.
    The context menu opens.
  2. Click Delete View.
    The view is deleted.

View Details

To explore a view's details, use the following shortcuts:

  • Properties: Displays View properties such as stream name, state, last timestamp and a QQL query.
  • Message details: Displays message details such as type, timestamp, symbol, packageType, and more.
  • Description: Opens a View description. You can switch between the QQL query and stream schema descriptions, which you can copy and use to create other streams.

Examples

Views represent data extracted via a QQL query from other TimeBase streams. In this section, we show how to create streams using various data.

Bars

In this example, we create a View for an extract from the COINBASE stream, with price bars based on L2 data from COINBASE.

  1. Click Query Mode.
    A new tab where you can run QQL queries opens.

  2. Select price data from bar messages for BTC/USD by running the following QQL query:

    WITH entries[this is TradeEntry] as 'entries'
    SELECT
    first{}(entries[0].price) as 'open',
    last{}(entries[-1].price) as 'close',
    max{}(max(entries.price)) as 'high',
    min{}(min(entries.price)) as 'low'
    TYPE "deltix.timebase.api.messages.BarMessage"
    FROM "COINBASE"
    OVER TIME(1m)
    WHERE symbol == 'BTC/USD' AND notEmpty(entries)
  3. Click Create View and name it COINBASE_BARS.

  4. In the streams panel, go to the Views tab> type COINBASE in the search field to locate your new View > click it to display data.

  5. (Optional.) In the shortcuts, click d to view a description and see the QQL query you used to create this View.

  6. To visualize the data aggregated by our View in a bar chart, right-click the View's name > Chart.

Indicators

In this example, we create a View for an extract from the COINBASE stream, with financial indicators based on L2 data from the COINBASE exchange.

  1. Click Query Mode
    A new tab where you can run QQL queries opens.

  2. Calculate various financial indicators for BTC/USD by running the following QQL query:

    WITH entries[this is TradeEntry] as 'entries',
    sum(entries.price * entries.size) / sum(entries.size) as 'avgPrice',
    bollinger{}(avgPrice) as 'bollinger'
    SELECT
    avgPrice,
    sma{timePeriod: 1h}(avgPrice) as 'sma-1h',
    cma{}(avgPrice) as 'cma',
    ema{period: 14}(avgPrice) as 'ema-14',
    bollinger.upperBand,
    bollinger.middleBand,
    bollinger.lowerBand
    FROM coinbase
    OVER TIME(1m)
    WHERE symbol == 'BTC/USD' AND notEmpty(entries)
  3. Click Create View and name it COINBASE_IND.

  4. In the streams panel, go to the Views tab > type COINBASE in the search field to locate your new View > click it to display data.

  5. (Optional.) In the shortcuts, click d to view a description and see the QQL query you used to create this View.

  6. To visualize the data aggregated by our View in a line chart, right-click the View's name > Chart.

Queries

The TimeBase Web Admin application allows querying stream data using TimeBase's proprietary data query language QQL.

To open a query tab, use one of the following options:

You can open more than one Query tab at the same time and run different queries with different settings in each of them.

As you type in your query text, the query editor offers autocomplete options and formatting hints. To see the available options:

  • Click Ctrl + Space anywhere in the query line.

To view stream details in a JSON format:

  • Double click any field in the query output area.

Query Modes

The query modes include:

  • Run: Run a QQL query.
  • Live: Create a subscription to the latest data, starting from the query timestamp.
  • Monitor: View your query execution in real-time.

Recent Queries

To access all the queries that you have recently created:

  • Click Recent Queries

Export

To export your query results to QSMSG format:

  • Click Export to QSMSG.

To export your query results to CSV format:

  1. Click the down caret.
  2. Click Export to CSV.

Create View

To create a View based on your QQL query:

  1. Enter a QQL query in the text area.
  2. Click Create View > give it a Name > click Create.

You can now access the View in the Views tab.

To learn more about materialized views in TimeBase, refer to the Materialized Views section.

Share Query

To share your current query via URL:

  • Click Share Query.

Errors

In case of an error, the corresponding query elements are highlighted in red right in the query text and the user receives an error message.

To stop any running query:

  • Click Cancel.
info

For more information about QQL and all the supported features, refer to the QQL Tutorials document.

Order Book

The Order Book is an aggregation of market data from one or several exchanges for a selected trading instrument.

The TimeBase Web Admin allows you to view the Order Book and a Market Depth Chart on the same screen The Market Depth Chart gives a quick glimpse into supply (Ask) and demand (Bid) on the market by showing the available buy/sell volumes at/above/below each price level.

There are several ways to access the order book:

Toolbar

To access the order book via the toolbar:

  • Click the Order book icon.

To populate the order book with data:

  • Select at least one stream and the symbol (trading instrument) you want to display the order book for.

Using the Exchanges filter, you can enable and disable the exchanges you want to build order book for.

Symbol Actions

To view a pre-configured order book for a selected stream and symbol:

  • Right-click any symbol in a stream and click Order Book.

To display an aggregated order book, add more streams and exchanges.

Message Details Panel

To view the order book in the message details panel:

  1. Open the message details panel using one of the following options:
  2. Click Order Book.

Viewing the order book in the message details panel results in a static order book.

To view a dynamic order book, use either the toolbar or symbol actions options.

Flow

The Flow feature visualizes the flow of data between streams and applications.

Applications labels are highlighted pink and stream labels are highlighted blue.

To customize the visualization, choose from the following options:

  • Topology: Changes the layout of the connections between applications and streams.
    • TREE
    • STAR
  • By MPS (Messages Per Second): Filters connections according to their rate of traffic.
    • Show All
    • More (than a given number)
    • Less (than a given number)
    • Equal (to a given number)
  • Filter: Isolates one or more streams or applications in the visualization.
  • Reset Layout

To see the rate of flow of the incoming/outgoing data:

  • In the visualization, click on a stream or application name.

Generate QQL

The Generate QQL (QuantQuery Language) feature allows you to create a QQL query using plain language.

To generate a QQL query:

  1. In the toolbar, click Generate QQL/DDL.
  2. Select a stream.
  3. Using plain language, describe the query you want to generate or its goal.
  4. Click Generate QQL.
    The QQL query appears in the box below.

QQL Example

The example below creates a QQL query that shows trades from the BINANCE stream with size > 100.

Generate DDL

The Generate DDL (Data Definition Language) feature creates a DDL script to create or modify streams using plain language.

To generate a DDL query:

  1. In the toolbar, click Generate QQL/DDL.
  2. Toggle to DDL.
  3. Using plain language, describe the content you want the stream to have.
  4. Click Generate DDL.
    The DDL appears in the box below.

DDL Example

The example below creates a DDL query for a stream that tracks food consumption.

Expand for full DDL script
CREATE DURABLE STREAM "food_consumption" (
ENUM "MealType" (
"BREAKFAST" = 0,
"LUNCH" = 1,
"SNACK" = 2,
"DINNER" = 3,
"SUPPER" = 4
);

CLASS "FoodItem" (
"name" VARCHAR NOT NULL,
"servingSize" FLOAT NOT NULL,
"calories" FLOAT NOT NULL,
"protein" FLOAT NOT NULL,
"carbs" FLOAT NOT NULL,
"fat" FLOAT NOT NULL,
"fiber" FLOAT NOT NULL,
"sugar" FLOAT NOT NULL
);

CLASS "FoodConsumption" (
"personName" VARCHAR NOT NULL,
"mealType" "MealType" NOT NULL,
"foodItems" ARRAY(OBJECT("FoodItem") NOT NULL) NOT NULL
);
)